package com.zhongc.advance.api;

import java.util.Map;

import org.hibernate.validator.constraints.NotBlank;

import com.zhongc.advance.common.result.Result;
import com.zhongc.advance.common.result.Results;
import com.zhongc.advance.info.User;
import com.zhongc.advance.order.LoginOrder;
import com.zhongc.advance.order.UserOrder;
/**
 *
 *
 * @Description
 *
 * @Version 1.0
 *
 * @Author zhongc
 *
 * @Email zhong_ch@foxmail.com
 *
 * @History
 *<li>Author: zhongc</li>
 *<li>Date: 2015年7月14日</li>
 *<li>Version: 1.0</li>
 *<li>Content: create</li>
 *
 */
public interface UserService {
	/**
	 * 注册
	 * @param order
	 * @return
	 */
	public Result register(UserOrder order);

	/**
	 * 根据用户id查询用户信息
	 * @param userId
	 * @return
	 */
	public Result queryUserByUserId(String userId);

	/**
	 * 用户登陆验证
	 * @param order
	 * @return
	 */
	public Result login(LoginOrder order);

	/**
	 * 根据条件查询查询用户信息 可以为空
	 * @param map
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public Results queryUser(Map<String, Object>... maps);

	/**
	 * 根据用户名称查询。
	 * 判断用户名是否存在。
	 * @param userName
	 * @return
	 */
	public Result queryUserByUsername(String userName);

	/**
	 *  更新用户信息。
	 * @param user
	 * @return
	 */
	public Results updateUser(User user);

	/**
	 * 更新密码
	 * @param userId
	 * @param passWord
	 * @return
	 */
	public Result updatePassword(@NotBlank(message="用户Id不能为空")String userId,@NotBlank(message="密码不能为空")String passWord);

}
